<?php

include_once("struct.class.php");

session_start();

struct::response_debug();

$stream = <<<EOD
/* Inhalt der Datei: "struct.example.script.txt"
*/

SET raumschiff->name=Enterprise;
isufoklasse=3;
iseditable;
canwarp;
hasphotonentorpedos=10;

SET raumschiff->torpedo=Photonen;
isufoklasse=1;
devestationlvl=12;

SET raumschiff->laser=Phaser;
devestationlvl=5;

SET raumschiff->Laser=Biglaser;
devestationlvl=5;

SET raumsCHiff->laser=Bling;
devestationlvl=5;

SET raumschiff->cabines->count=1200;
isnumeric;

SET raumschiff->cabines->rooms=2;
isnumeric;

SET raumschiff->test->room=Luxery;

EOD;
if( !file_exists("struct.example.script.txt") ) file_put_contents("struct.example.script.txt", $stream);

_("Laden der Datei in den internen struct-Speicher");
_(struct::preset_from_file("struct.example.script.txt"));
//Aufräumen
@unlink("struct.example.script.txt");
_();

//Prüfen auf asnychronen Request;
$response_array = struct::response();

_("Abfrage des Wertes 'raumschiff->laser' aus dem internen struct-Speicher");
_(struct::get("raumschiff->laser"));
_();
_("Abfrage aller Metadaten zum Schlüssel 'raumschiff->laser'");
_(struct::get_meta("raumschiff->laser"));
_("Abfrage mit einem bewusst falschen case auf 'RAUMSCHIFF->laser'");
_(struct::get_meta("RAUMSCHIFF->laser"));
_();
if( PHP_VERSION_ID >= 50300 )
{
	_("Abfrage eines einzelnen Metaschlüssels 'isufoklasse' zum Werteschlüssel 'raumschiff->name'");
	_(struct::isufoklasse("raumschiff->name"));
	_("Abfrage eines einzelnen Metaschlüssels 'iseditable' zum Werteschlüssel 'raumschiff->name'");
	_(struct::iseditable("raumschiff->name"));
	_();
}

/*
_("Ausgabe des gesamten internen struct-Speichers");
_(struct::get());
_();
_("Ausgabe der Metainformationen");
_(struct::get_meta());
*/
if( isset($_SERVER['HTTP_USER_AGENT']) )
{
	$myviewmod = new myviewmod();
	struct::creator($myviewmod);
	struct();
}

class myviewmod
{

	var $obj;
	var $default;
	var $key;
	var $param;
	var $value;
	var $name;

	function construct()
	{
		$label = new node;
		$label->command("span");
		$label->addProperty("class", "key");
		$label->setValue($this->name.": ");
		$this->obj->before($label);
	}

}

?>